import path from 'path'
import i18n from '@/i18n'
/**
 * 筛选出可供搜索的路由对象
 * @param routes 路由表
 * @param basePath 基础路径，默认为 /
 * @param prefixTitle
 */
export const generateRoutes = (routes, basePath = '/', prefixTitle = []) => {
  let res = []
  // 对routes进行循环渲染
  routes.forEach(route => {
    const data = {
      path:path.resolve(basePath,route.path),
      title:[...prefixTitle]
    }
    // 当前存在 meta 时，使用 i18n 解析国际化数据，组合成新的 title 内容
    // 动态路由不允许被搜索
    // 匹配动态路由的正则
    const re = /.*\/:.*/
    if(route.meta&&route.meta.title&&!re.exec(route.path) &&  !res.find((item) => item.path === data.path)){
      const i18ntitle = i18n.global.t(`msg.route.${route.meta.title}`)
      data.title = [...data.title,i18ntitle]
      res.push(data)
    }
    // 存在 children 时，迭代调用
    if (route.children) {
      const tempRoutes = generateRoutes(route.children,data.path,data.title)
      if(tempRoutes.length > 0){
        res = [...res, ...tempRoutes]
      }
    }
  })
  return res
}